package Controlador;

import java.awt.Window;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowEvent;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JOptionPane;

import Vista.VistaMenu;
import Vista.VistaCliente;
import Modelo.Cliente;
import Modelo.Orden;
import Modelo.Accion;

public class CntrlCliente implements ActionListener,ItemListener{
	
FacadeCliente facade;
	Accion accion=new Accion();
	VistaCliente vistacliente;
	public CntrlCliente(VistaCliente vcliente)
	{
		vistacliente=vcliente;	
	}
	
	
	public void actionPerformed(ActionEvent ae) {
		String opcion=(String)ae.getActionCommand();
		if(opcion.equals("Registrar")){
			boolean valida=false;
			valida=validarCampos();
			if(valida){
			  Cliente cliente= new Cliente(facade.getTxtCedula().getText(),facade.getTxtNombre().getText(),facade.getTxtApellido().getText(),facade.getTxtTelefono().getText(),facade.getTxtDireccion().getText());
		      accion.registrarCliente(cliente); 
		      JOptionPane.showMessageDialog(null, "EL CLIENTE HA SIDO REGISTRADO CON EXITO", 
						"REGISTRO CLIENTE", 
						JOptionPane.INFORMATION_MESSAGE);
		                facade.limpiar();
			}
			
			else{
				JOptionPane.showMessageDialog(null, "DEBES LLENAR TODOS LOS LOS CAMPOS", 
						"REGISTRO CLIENTE", 
						JOptionPane.INFORMATION_MESSAGE);
			}
			
			
		}
		if(opcion.equals("Buscar")){
			boolean encontrado;
			Cliente cliente;
			
		    encontrado=accion.consultarCliente(facade.getTxtCedula().getText());
		    if(encontrado){
		    cliente=accion.ObtenerCliente(facade.getTxtCedula().getText());
		    facade.getTxtNombre().setText(cliente.getNombre());
		    facade.getTxtApellido().setText(cliente.getApellido());
		    facade.getTxtTelefono().setText(cliente.getTelefono());
		    facade.getTxtDireccion().setText(cliente.getDireccion());
		    facade.activar();
		    }
		    else{
		    	JOptionPane.showMessageDialog(null, "EL CLIENTE NO SE ENCUENTRA REGISTRADO", 
						"REGISTRO CLIENTE", 
						JOptionPane.INFORMATION_MESSAGE);
		    	
		    	facade.activar();
		    }
		    
		}
		if(opcion.equals("Modificar")){
			Cliente cliente= new Cliente(facade.getTxtCedula().getText(),facade.getTxtNombre().getText(),facade.getTxtApellido().getText(),facade.getTxtTelefono().getText(),facade.getTxtDireccion().getText());
		    accion.modificarCliente(facade.getTxtCedula().getText(),cliente);
		    JOptionPane.showMessageDialog(null, "LOS DATOS HAN SIDO MODIFICADOS", 
					"REGISTRO CLIENTE", 
					JOptionPane.INFORMATION_MESSAGE);
		}
		if(opcion.equals("Eliminar")){
		    accion.eliminarCliente(facade.getTxtCedula().getText());
		    JOptionPane.showMessageDialog(null, "EL CLIENTE HA SIDO ELIMINADO", 
					"REGISTRO CLIENTE", 
					JOptionPane.INFORMATION_MESSAGE);
		}
		if(opcion.equals("Limpiar")){
			facade.limpiar();
		}
		
		if(opcion.equals("    Salir   ")){
			facade.dispose();
		}
		
				
	}

    
	private boolean validarCampos(){
		boolean sw= false;
		if ((!facade.getTxtCedula().getText().equals("")) && (!facade.getTxtNombre().getText().equals("")) && (!facade.getTxtApellido().getText().equals("")) &&(!facade.getTxtTelefono().getText().equals(""))&&(!facade.getTxtDireccion().getText().equals("")))
		    sw=true;
		return sw;
		
	}
	
	
	@Override
	public void itemStateChanged(ItemEvent arg0) {
		facade.repaint();
		
	}
}	
